<?php

namespace App\Service\System;

use Ip2Region;

class IpService
{
    // ip 定位
    public function getCity($ip)
    {
        if(!$this->isValidIp($ip)){
            apiError("ip地址错误");
        }
        $ip2region = new Ip2Region();

        $info = $ip2region->btreeSearch($ip);
        $city = explode('|', $info['region']);
        return implode('-', array_filter([
            $city[0] ?? "",
            $city[2] ?? "",
            $city[3] ?? ""
        ]));
    }

    public function isValidIp($ip) {
        // 检查 IP 地址是否合法
        if (filter_var($ip, FILTER_VALIDATE_IP)) {
            return true; // 合法 IP
        } else {
            return false; // 非法 IP
        }
    }
}